package com.ta.gulimall.product.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ta.gulimall.common.utils.system.PageUtils;
import com.ta.gulimall.product.view.entity.AttrEntity;
import com.ta.gulimall.product.view.entity.AttrGroupEntity;
import com.ta.gulimall.product.view.vo.AttrGroupVo;
import com.ta.gulimall.product.view.vo.AttrGroupVoResponse;
import com.ta.gulimall.product.view.vo.AttrgroupWithAttrVo;

import java.util.List;
import java.util.Map;

/**
 * 属性分组
 *
 * @author tuao
 * @email tuaoo@gmail.com
 * @date 2022-10-27 16:31:57
 */
public interface AttrGroupService extends IService<AttrGroupEntity> {

    /**
     * 分页分类属性组信息
     * @param params
     * @param catelogId 分类id
     * @return
     */

    PageUtils queryPage(Map<String, Object> params, Long catelogId);

    /**
     * get属性组
     * @param attrGroupId 属性组id
     * @return
     */
    AttrGroupVoResponse getAttrGroup(Long attrGroupId);

    /**
     * 查询属性组关联的属性值list
     * @param attrgroupId
     * @return
     */
    List<AttrEntity> getAttrs(Long attrgroupId);

    /**
     * 删除属性组关联的属性
     * @param attrGroupVos
     */
    void deleteAttrGroupRelevances(List<AttrGroupVo> attrGroupVos);

    /**
     * 查询属性组下没有被关联的属性
     * @param params
     * @param attrGroupId
     * @return
     */
    PageUtils pageAttrNoRelation(Map<String, Object> params, Long attrGroupId);

    /**
     * 关联属性组下的属性
     * @param attrGroupVos
     */
    void insertRelationAttrs(List<AttrGroupVo> attrGroupVos);

    /**
     * 分类下的属性组集合与属性值集合
     * @param catelogId
     * @return
     */
    List<AttrgroupWithAttrVo> attrgroupWithAttrs(Long catelogId);
}

